/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：UICompositeDecorationButton.js<br>
 * 日期：2016年9月17日<br>
 * 作者: 杨顺强<br>
 * 功能：button的装饰者，对原始button进行简单的装饰，完成新的需求，如在button前后添加“>”,"<"等符号<br>
 * 
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/


window.makeNamespace(window,"Rainier.UI.V2");

/**
 * 函数名称：Rainier.UI.V2.UICompositeDecorationButton<br>
 * 函数功能：button装饰者组件<br>
 * 参数输入：<br>
 * 异常信息：<br>
 */
Rainier.UI.V2.UICompositeDecorationButton = Rainier.UI.V2.UIComposite.extend({
	
	NAME : "Rainier.UI.V2.UICompositeDecorationButton",
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDecorationButton.init<br>
	 * 函数功能：初始化横线组件<br>
	 * 参数输入：objParentComposite : UIComposite 父组件对象<br>
	 * 参数输入：objProperties:
	 * {
	 * 	  style 	: "", 		//当前div的css样式配置。用来控制button的位置。一般使用margin-top和margin-left完成button的定位  为必填参数
	 * 	  decoration:"",		//该button组件的装饰信息。 该参数为可选信息							为可选参数
	 * 	  button	:{}			//button的配置信息 参照easyUI中LinkButton的Properties完成参数配置	为必填参数
	 * }<br>
	 * 参数输出：<br>
	 * 函数返回：<br>
	 * 异常信息：<br>
	 */
	init : function(objParentComposite,objProperties){
		this.button = null;
		if(objProperties.style){
			this.style = objProperties.style;
		}else{
			throw new Error("button中style参数为必填参数,请检查该组件的配置信息。重新设置");
		}
		if(objProperties.decoration){
			this.decoration = objProperties.decoration;
		}
		if(objProperties.button){
			this.buttonProperties = objProperties.button;
		}else{
			throw new Error("button中button组件的配置参数为必填参数,请检查该组件的配置信息。重新设置");
		}
		this._super(objParentComposite,objProperties);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDecorationButton.createComposite<br>
	 * 函数功能：组件创建函数，完成对组件的创建工作<br>
	 * 参数输入：eleParent ： 父节点Tag<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	createComposite : function(eleParent){
		this._super(eleParent);
		//style配置信息 ，参见 {style:"padding-left:20px;margin-top:10px;float:left"} 一般只进行对高度的调整 即margin-top，其余固定为一个格式即可
		var newEle = this.CreateElement("div",this.m_objProperties.id,null,{style:this.style});
		eleParent.append(newEle);
		//添加组件内容
		if(this.decoration){
			newEle.append($("<span><B> "+this.decoration+" <B></span>"));
			newEle.append($("<span><B> "+this.decoration+" <B></span>"));
		}
		this.button  = new Rainier.UI.V2.UICompositeLinkButton(this,this.buttonProperties);
		newEle.children(":first-child").after(this.button.getElement());
	},
	
	/**
	 * 函数名称：<br>
	 * 函数功能：作为其父组件中的一部分，向父组件提供当前组件对象<br>
	 * 参数输入：<br>
	 * 参数输出：<br>
	 * 函数返回：<br>
	 * 异常信息：<br>
	 */
	getButton  : function(){
		return this.button;
	}
	
});

